<template>
	<view class="content">
		<view class="section-0">
			<view class="section-body">
				<view class="form">
					<view class="form-item">
						<view class="label">项目名称</view>
						<view class="shape"></view>
						<view class="input">
							<u--input placeholderClass="input-placeholder" v-model="name" class="input-body"></u--input>
						</view>
					</view>
					<view class="actions">
						<view class="action" @click="handleResetForm()">
							<text>重</text>
							<text>置</text>
						</view>
						<view class="action search" @click="handleSearch()">
							<text>查</text>
							<text>询</text>
						</view>
					</view>
				</view>
				<view class="list">
					<view class="problem-wrapper" v-if="list.length<=0">
						<image src="https://www.mescroll.com/img/mescroll-empty.png"></image>
						<view class="">~ 空空如也 ~</view>
					</view>
					<view :class="`item ${item.show ? 'item__expand' : ''}`" v-else v-for="(item, index) in list" :key="item.id + index">
						<view class="parent" @click="expandChange(item.id)">
							<view class="action">
								<view class="iconfont icon-xiangyou1"></view>
							</view>
							<view class="name">{{ index + 1 }}.{{ item.project_name }}</view>
						</view>
						<view class="child" v-if="item.show">
							<view class="child-item" @click="go(item2)" v-for="(item2, idx) in item.children" :key="item2.id + idx">
								<view class="top">
									<view class="name">{{ index + 1 }}-{{ idx + 1 }}.{{ item2.project_name }}</view>
									<view class="action">
										<view class="totalse">
											{{ item.total }}册
										</view>
										<view class="iconfont icon-xiangyou1"></view>
									</view>
								</view>
							</view>
						</view>
					</view>
				</view>
			</view>
		</view>
	</view>
</template>

<script>
import { DrawingsListGroup } from '@/api/statistics.js'
export default {
	onLoad() {
		this.DrawingsListGroup()
	},
	data() {
		return {
			list: [],
			name: ''
		}
	},
	methods: {
		handleResetForm() {
			this.name = ''
			this.DrawingsListGroup()
		},
		handleSearch() {
			this.DrawingsListGroup()
		},
		go(item2) {
			uni.navigateTo({
				url: '/pages/statistics/technology/drawings/construction?id=' + item2.id + '&project_name=' + item2.project_name
			})
		},
		async expandChange(id) {
			const dep = JSON.parse(JSON.stringify(this.list))
			let _idx = undefined
			dep.forEach((item, idx) => {
				if (item.id === id) {
					if (dep[idx].show) {
						dep[idx].show = false
					} else {
						dep[idx].show = true
						_idx = idx
						if (!dep[idx].children) {
							dep[idx].children = []
						}
					}
				}
			})
			if (_idx !== undefined && dep[_idx].children && dep[_idx].children.length === 0) {
				uni.showLoading({
					title: '加载中...'
				})
				const { data } = await DrawingsListGroup({})
				uni.hideLoading()
				dep[_idx].children = data.data
			}
			this.list = dep
		},
		async DrawingsListGroup() {
			uni.showLoading({
				mask: true
			})
			let j = await DrawingsListGroup({
				name: this.name == '' ? '' : this.name
			})
			if (j.data.code == 1) {
				this.list = j.data.data
			}
			uni.hideLoading()
		}
	}
}
</script>

<style lang="scss" scoped>
.section-1 {
	width: 100%;
	background-color: #2e5efe;

	.section-body {
		width: 100%;
		height: 340rpx;
		padding-left: 40rpx;
		padding-right: 40rpx;
		padding-bottom: 50rpx;
		padding-top: 20rpx;
		background-color: #1534ce;
		background-size: cover;
		background-repeat: no-repeat;
		border-top-left-radius: 50rpx;
		border-top-right-radius: 50rpx;
		overflow: hidden;
		box-sizing: border-box;

		.item {
			width: 33.33%;
			float: left;
			display: flex;
			flex-wrap: wrap;
			align-content: space-between;
			height: 100rpx;
			position: relative;
			padding-top: 20rpx;
			padding-bottom: 20rpx;

			.shape {
				width: 4rpx;
				height: 84rpx;
				background-image: linear-gradient(rgba(#3658f2, 0.3) 0%, #3658f2 30%, #3658f2 70%, rgba(#3658f2, 0.3) 100%);
				position: absolute;
				right: 0;
				top: 28rpx;
			}

			.shape2 {
				height: 4rpx;
				width: 172rpx;
				background-image: linear-gradient(90deg, rgba(#3658f2, 0.3) 0%, #3658f2 30%, #3658f2 70%, rgba(#3658f2, 0.3) 100%);
				position: absolute;
				left: 0;
				right: 0;
				margin: 0 auto;
				bottom: -2rpx;
			}

			.top {
				width: 100%;
				text-align: center;
				font-size: 16rpx;
				font-weight: normal;
				font-stretch: normal;
				letter-spacing: 0rpx;
				color: #95c4fa;
			}

			.bottom {
				width: 100%;
				text-align: center;
				font-size: 45rpx;
				font-weight: bold;
				font-stretch: normal;
				letter-spacing: 0rpx;
				color: #ffde00;
				word-break: keep-all;

				text {
					font-size: 22rpx;
				}
			}
		}
	}

	.item__on {
		.top {
			text-shadow: 8rpx 8rpx 8rpx rgba(0, 0, 0, 0.3);
		}

		.bottom {
			text-shadow: 8rpx 8rpx 8rpx rgba(0, 0, 0, 0.3);
		}
	}
}

.section-0 {
	width: 100%;
	position: relative;
	z-index: 10;
	background: #2e5efe;

	.section-body {
		width: 100%;
		height: 100%;
		border-top-left-radius: 50rpx;
		border-top-right-radius: 50rpx;
		background-color: #fff;
		overflow: hidden;

		.tab {
			width: 100%;
			height: 80rpx;
			@include clear();
			background-color: #1534ce;

			.item {
				width: 33.33%;
				float: left;
				height: 80rpx;
				background-color: #1534ce;
				position: relative;

				.label {
					height: 80rpx;
					line-height: 80rpx;
					position: relative;
					z-index: 10;
					box-sizing: border-box;
					text-align: center;
					width: 100%;
					font-size: 26rpx;
					font-weight: normal;
					font-stretch: normal;
					letter-spacing: 0rpx;
					color: #ffffff;
				}

				.shape {
					z-index: 1;
					width: 50rpx;
					height: 50rpx;
					position: absolute;
					bottom: 0;
					left: -50rpx;
					background: #000;
					display: none;
					background-color: #fff;
					overflow: hidden;

					.shape-body {
						width: 50rpx;
						height: 50rpx;
						background-color: #1534ce;
						border-bottom-right-radius: 40rpx;
					}
				}

				.shape-mirrow {
					z-index: 1;
					left: 0;
					display: none;

					.shape-body {
						border-bottom-right-radius: 0rpx;
						border-bottom-left-radius: 40rpx;
					}
				}
			}

			.item__active {
				border-top-left-radius: 40rpx;
				border-top-right-radius: 40rpx;
				background-color: #fff;

				.label {
					color: #46464a;
				}

				.shape {
					display: block;
				}

				.shape-mirrow {
					display: none;
				}
			}

			.item__active_next {
				border-bottom-right-radius: 50rpx;

				.shape {
					display: none;
				}

				.shape-mirrow {
					display: block;
				}
			}
		}

		.list {
			width: 670rpx;
			box-sizing: border-box;
			margin-left: 40rpx;
			border-top: 2rpx solid #d8e4f2;
.problem-wrapper {
			color: #808080;
			margin: 0 auto;
			text-align: center;
			image {
				margin-top: 300rpx;
				width: 200rpx;
				height: 200rpx;
			}
		}
			.item {
				width: 100%;
				border-bottom: solid 2rpx #f2f2f0;

				.parent {
					width: 100%;
					@include clear();

					.name {
						width: calc(100% - 50rpx);
						line-height: 30rpx;
						padding: 26rpx 0;
						font-size: 26rpx;
						font-weight: normal;
						font-stretch: normal;

						letter-spacing: 2rpx;
						color: #3b3c40;
						float: left;
						word-break: break-all;
					}

					.count {
						float: right;
						min-width: 46rpx;
						height: 46rpx;
						margin-top: 18rpx;
						border-radius: 28rpx;
						line-height: 46rpx;
						text-align: center;
						font-size: 26rpx;
						font-weight: bold;
						color: #395cf5;
						background: #ffde00;

						// margin-right: 40rpx;
						text {
							font-size: 16rpx;
						}
					}

					.action {
						float: left;
						width: 32rpx;
						margin-right: 18rpx;
						height: 100%;
						line-height: 82rpx;
						text-align: center;
						color: #3b3c40;

						.iconfont {
							font-size: 32rpx;
							transition: 0.2s ease;
							transform: rotate(90deg);
						}
					}
				}

				.child {
					width: 750rpx;
					margin-left: -40rpx;
					background: #f2f2fa;

					.child-item {
						width: 655rpx;
						margin-left: 90rpx;
						border-bottom: 2rpx solid #e3e8f5;

						&:last-child {
							border-bottom: none;
						}
						.top {
							width: 100%;
							overflow: hidden;
							height: 100rpx;
							display: flex;
							.name {
								float: left;
								width: calc(100% - 120rpx);
								height: 100rpx;
								line-height: 100rpx;
								color: #3b3c40;
								font-size: 26rpx;
								// padding: 30rpx 0;
								text-overflow: ellipsis;
								overflow: hidden;
								white-space: nowrap;
							}
							.action {
								display: flex;
								width: 120rpx;
								height: 100rpx;
								line-height: 100rpx;
								float: right;
								text-align: right;
								.totalse{
									background-color:#FFDE00 ;
									width: 100rpx;
									height: 60rpx;
									line-height: 60rpx;
									text-align: center;
									border-radius: 50%;
									font-size: 26rpx;
									margin-top: 20rpx;
								}
								.iconfont {
									margin-left: 10rpx;
									font-size: 32rpx;
									color: #7f98ae;
								}
							}
						}
					}
				}
			}

			.item__expand {
				.parent {
					.action {
						.iconfont {
							transform: rotate(-90deg);
						}
					}
				}

				.child {
					box-shadow: 0rpx 10rpx 10rpx 0rpx rgba(0, 0, 0, 0.03) inset;
				}
			}
		}

		.actions {
			width: 100%;
			height: 50rpx;
			margin-top: 29rpx;
			padding-bottom: 40rpx;
			display: flex;
			justify-content: space-between;

			.action {
				width: 288rpx;
				height: 48rpx;
				background-color: #395cf5;
				border-radius: 20rpx;
				text-align: center;
				line-height: 48rpx;
				font-size: 26rpx;
				font-weight: normal;
				font-stretch: normal;
				line-height: 48rpx;
				color: #ffffff;

				text {
					&:first-child {
						margin-right: 20rpx;
					}
				}
			}

			.search {
				background-color: #1534ce;
			}
		}

		.form {
			width: 100%;
			padding: 0 75rpx;
			padding-top: 40rpx;
			box-sizing: border-box;

			.form-item {
				width: 600rpx;
				height: 48rpx;
				border-radius: 20rpx;
				border: solid 2rpx #1534ce;
				margin: 0 auto;
				margin-bottom: 25rpx;

				&:last-child {
					margin-bottom: 34rpx;
				}

				@include clear();

				.label {
					float: left;
					width: 134rpx;
					height: 48rpx;
					text-align: center;
					line-height: 44rpx;
					font-size: 26rpx;
					font-weight: normal;
					font-stretch: normal;
					letter-spacing: 0rpx;
					color: #1534ce;
				}

				.shape {
					width: 3rpx;
					height: 32rpx;
					background-color: #7f98ae;
					float: left;
					margin-top: 8rpx;
				}

				.input {
					float: left;
					width: calc(100% - 134rpx - 3rpx);

					.input-body {
						box-sizing: border-box;
						width: 100%;
						height: 44rpx;
						padding: 0 !important;
						border: none;
						padding-left: 30rpx !important;
						padding-right: 30rpx !important;
						font-size: 26rpx;
						font-weight: normal;
						font-stretch: normal;
						letter-spacing: 0rpx;
						color: rgba(0, 0, 0, 0.7);
					}

					.input-placeholder {
						font-size: 26rpx;
						font-weight: normal;
						font-stretch: normal;
						letter-spacing: 0rpx;
						color: rgba(0, 0, 0, 0.5);
					}
				}
			}
		}

		.total {
			box-sizing: border-box;
			padding: 0 70rpx;
			height: 80rpx;
			line-height: 70rpx;
			font-size: 22rpx;
			font-weight: normal;
			font-stretch: normal;
			line-height: 80rpx;
			letter-spacing: 0rpx;
			color: #3b3c40;
		}

		.charts {
			width: 100%;
			box-sizing: border-box;
			height: 315rpx;
			padding: 0 70rpx;
			padding-left: calc(70rpx - 15px);
			margin-bottom: 30rpx;

			#echarts {
				width: 100%;
				height: 100%;
			}
		}

		.top-tab {
			width: 670rpx;
			margin-left: 40rpx;
			height: 52rpx;
			line-height: 52rpx;
			display: flex;
			justify-content: space-between;
			box-sizing: border-box;
			padding: 0 30rpx;
			margin-top: 15rpx;
			border-bottom: solid 3rpx #f2f2f0;

			.item {
				font-size: 26rpx;
				font-weight: normal;
				font-stretch: normal;
				line-height: 50rpx;
				letter-spacing: 0rpx;
				color: #d8d8d5;
				position: relative;

				.shape {
					opacity: 0;
					transform: translateY(6rpx);
					position: absolute;
					bottom: -6rpx;
					width: 100%;
					height: 8rpx;
					background-color: #1534ce;
					border-radius: 8rpx;
					transition: 0.3s ease;
				}
			}

			.item__active {
				color: #3b3c40;

				.shape {
					opacity: 1;
					transform: translateY(0rpx);
				}
			}
		}
	}
}
</style>
